#有一个500个G的文件,特殊在于他只有一行数据
def myreadlines(f,newline):
    buf=''
    while True:
        while newline in buf:
            pos=buf.index(newline)
            yield buf[:pos]
            buf=buf[pos+len(newline):]#更新buf，丢掉之前读到过的数据，读到的数据可能含有多个切割符
        chunk=f.read(4096*10)
        if not chunk:#处理边缘条件，
            yield buf
            break
        buf+=chunk
with open('input.txt') as f:
    for line in myreadlines(f,'{|}'):
        print(line)